Traditional testing of a computer program can include the external monitoring of integrity of the program and performance of the program, either subjectively based upon end user impression, or objectively based upon independently acquired metrics. Often, to test an application, testing personnel must establish and configure a testing environment. Within the testing environment, a test protocol can be defined for exercising a computing application. The individual steps and portions of the testing protocol, in turn, can be automated through operating system scripts, batch files and the like. In this regard, for a test protocol, a typical test cycle can include multiple phases that test a system from various angles, such as functional, performance, and system test phases.
Test automation brings down Test cycles resulting in faster and frequent release of software to market. However, current Test Automation frameworks are highly technical and require automation experts to deliver Automated Test Suites. Once an automated Test Suite is created, modifying it to incorporate future changes in application is very tedious, effort intensive and requires involvement of both Automation and Domain expertise. Therefore, there is a need for a method and a system that enables self-maintainable test automation eliminating the effort and expertise required to create, modify and maintain Test Automation Suites.